這三十天無法對於MVC全部原始碼做詳細介紹,我盡量在這三十篇講述MVC執行過程中重要知識點,閱讀MVC原始碼真不是很簡單事情.
但閱讀完後我對於OOP和如何合理撰寫程式碼一個系統有更深入了解(因為MVC很多地方很好運用OOP概念原則)
希望大家經過閱讀這三十篇文章可以對於IIS託管和Asp.net MVC原理有更深入了解.
Http
對於IIS Server
請求如何導向Asp.net MVC
執行Asp.net MVC
原始碼有基本了解和知道哪幾個重要類別,了解後能依照系統需要替換改寫.Asp.net MVC
用到很多設計技巧,希望大家能更了解設計模式如何運用在實戰中Dapper
,AutoMapper
,Autofac
,Json.net
.....)如果想要了解
Dapper
原理讀者我推薦去閱讀,我隊友暐翰
系列文章進階學習 ADO.NET、Dapper、Entity Framework 系列寫得很詳細且有影片教學大推!!
感謝這次可以跟IT成長團的大家一起參與並完成It邦幫忙鐵人活動.
這三十天大家一起鼓勵,互相叮嚀鼓勵.這種感覺真的很棒 :)
下面是隊友們寫的優質系列文章,推薦大家一同去閱讀.
Peter學程式 :超緊繃!30天Vue.js學習日記
Victor :使用 Laravel 打造 RESTful API
希望明年還有機會可以跟大家一起在參加鐵人賽衝一波,寫文章.
以前碰到動態建立物件或動作,我都是使用反射技巧來完成,透過了解ActionMethodDispatcher
類別原始碼探討為何MVC不使用反射卻,而使用Expression
表達式完成動態呼叫需求.
查了資料進而了解到Expression
表達式用法且他想解決的問題,對於未來有多了一項武器可以運用.
設計模式不是紙上談兵,某些問題會使用某些方法來解決.
筆者對於設計模式也略有研究,對於DesignPattern有一個
Repository
做介紹,陸陸續續會補上我對於Design Pattern
在現實生活上理解
MVC使用的許多設計模式和技巧,使用這些模式為了可讓程式變得好理解有意義
商業邏輯讓程式變複雜是必然,我們能做的是讓程式碼變得不會太難理解可以更好擴充
每個設計模式都有適合使用場景.
工廠模式
: 將使用動作和產生物件做一個區隔(依賴一個抽象).代理模式
: 提供一個代理人不用對於原有程式碼進行修改(AOP
就是利用此模式概念)裝飾者模式
: 適合在需要一直改變物件狀態的情境建立者模式
: 提供一個建立管道讓使用的提供要建立物件,最後可透過此模式來方便替換還有許多模式就不一一介紹
像我很久之前就學過組合模式,只是對於此模式運用場景一直找不到.
直到看到複雜模型和簡單模型綁定如何將組合模式運用在實戰中.
筆者看完Filter
機制後就有感而發,這麼好用的方式可否運用在Service
或其他地方(非Asp.net MVC
,Web API
區域).
我就依照上面標籤概念建立一個AwesomeProxy.NetAOP框架基於RealProxy
這個物件.
想知道詳細資訊的讀者可自行查閱AwesomeProxy.Net
的Readme.md
.
看完三十篇分享文後,希望台灣會有越來越多大大投入開源社群,我個人感觸是投入社群後我觸碰,接觸事物比我想想遠遠多很多.
此系列文分成三大部分
[Day01] (開賽)Http 請求 Asp.net IIS伺服器架構
[Day02] Asp.Net支柱 IHttpMoudle & IHttphandler
[Day03] 啟動吧!Asp.Net IsapiRunTime & HttpRuntime
[Day04] 掌控HttpApplication物件建立 - HttpApplicationFactory
[Day05] Asp.Net重要物件HttpApplication(一) 初始化建立IHttpMoudule
[Day06] Asp.Net重要物件HttpApplication(二) 建置執行管道
[Day07] Asp.Net重要物件HttpApplication(三) 取得執行的IHttpHandler
[Day08] 揭密Mvc使用IHttpHandler by UrlRoutingModule-4.0
[Day09] 進入MVC原始碼世界 Route & RouteTable 原始碼解析
[Day10] 透過MvcRouteHandler取得呼叫IHttphandler
[Day11] Asp.net MVC Controller是怎麼被建立(原始碼揭密)
[Day15] Action方法如何被執行InvokeAction(一)
[Day17] Action方法如何被執行InvokeAction(二)
[Day18] 提供ModelBing幾個重要功臣(Model)
[Day19] Http參數如何綁定到Action參數上(簡單和複雜模型綁定探討)
[Day21] Model 探討驗證標籤(ValidationAttribute)
[Day23] 6個基本(ActionResult) View是如何被建立(二)
[Day24] 探討ViewEngine機制 View是如何被建立(三)
[Day25] 動態產生程式碼(WebViewPage) View是如何被建立(四)
[Day26] 動手DIY改造 Asp.net MVC- Route解析機制
[Day27] 動手DIY改造 Asp.net MVC- 自己動作建立一個DependencyResolver解析器(Autofac)
[Day28] 動手DIY改造 Asp.net MVC- 建立自己ActionInvoker和Model綁定機制
[Day29] 動手DIY改造 Asp.net MVC- 擴充在擴充,強化WebViewPage製作多國貨幣機制
恭喜石頭大大完賽!!!
在IT邦跟S.O認識大大,今年又一起參加鐵人賽
等之後IT邦幫忙大會又可以見面,真棒
謝謝 暐翰大大.
你今年的文章跟以往一樣超級用心且優質.
期待IT邦幫忙頒獎典禮的見面會^^
恭喜完賽
今年結束的感覺也是很爽,有考慮下次再一起拼一波嗎
哈哈 結束的感覺真的很爽XD
明年我看到時候的工作情況 如果可以再跟大家再拚一次